package com.xinxin.o2o.mapper;

import com.xinxin.o2o.model.Product;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author 史鑫鑫
 * @date 2019-08-20 20:04
 */
@Repository
public interface ProductMapper {
    /**
     * 查询商品
     *
     * @param productCondition 查询条件
     * @param rowIndex         行数
     * @param pageSize         个数
     * @return 集合
     */
    List<Product> queryProductList(@Param("productCondition") Product productCondition, @Param("rowIndex") int rowIndex, @Param("pageSize") int pageSize);

    /**
     * 查询对应商品总数
     *
     * @param productCondition 查询条件
     * @return 商品总数
     */
    int queryProductCount(@Param("productCondition") Product productCondition);

    /**
     * 插入商品
     *
     * @param product 商品
     * @return 插入结果
     */
    int insertProduct(Product product);

    /**
     * 置为空
     *
     * @param productCategoryId 类别id
     * @return 影响行数
     */
    int updateProductCategoryToNull(@Param("productCategoryId") Long productCategoryId);


    /**
     * 通过id查询商品详情
     *
     * @param productId 商品id
     * @return 查询结果
     */
    Product queryProductByProductId(long productId);

    /**
     * 更新商品信息
     *
     * @param product 商品
     * @return 更新结果
     */
    int updateProduct(Product product);

    /**
     * 删除商品
     *
     * @param productId 商品id
     * @param shopId    商店id
     * @return 删除结果
     */
    int deleteProduct(@Param("productId") long productId,
                      @Param("shopId") long shopId);


}
